package es.project.sien7e.main.services;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;

import es.project.sien7e.main.model.Agenda;
import es.project.sien7e.main.model.Conexion;
import es.project.sien7e.main.model.Contador;
import es.project.sien7e.main.model.Directorio;
import es.project.sien7e.main.model.Foto;
import es.project.sien7e.main.model.Menu;
import es.project.sien7e.main.model.Municipio;
import es.project.sien7e.main.model.Provincia;
import es.project.sien7e.main.model.Rol;
import es.project.sien7e.main.model.Rolmenu;
import es.project.sien7e.main.model.Tipodirectorio;
import es.project.sien7e.main.model.Usuario;
import es.project.sien7e.main.model.Usuariorol;

public interface DAOService {

	Usuario grabaUsuario(Usuario obj);

	Usuario insertaUsuario(Usuario obj);

	Integer borrarUsuario(Usuario obj);

	Menu grabaMenu(Menu obj);

	Menu insertaMenu(Menu obj);

	Integer borrarMenu(Menu obj);

	Agenda grabaAgenda(Agenda obj);

	Agenda insertaAgenda(Agenda obj);

	Integer borrarAgenda(Agenda obj);

	Directorio grabaDirectorio(Directorio obj);

	Directorio insertaDirectorio(Directorio obj);

	Integer borrarDirectorio(Directorio obj);

	Conexion grabaConexion(Conexion obj);

	Conexion insertaConexion(Conexion obj);

	Integer borrarConexion(Conexion obj);

	Tipodirectorio grabaTipodirectorio(Tipodirectorio obj);

	Tipodirectorio insertaTipodirectorio(Tipodirectorio obj);

	Integer borrarTipodirectorio(Tipodirectorio obj);

	Rol grabaRol(Rol obj);

	Rol insertaRol(Rol obj);

	Integer borrarRol(Rol obj);

	Foto grabaFoto(Foto obj);

	Foto insertaFoto(Foto obj);

	Integer borrarFoto(Foto obj);

	Contador insertaContador(Contador obj);

	Usuariorol insertaUsuariorol(Usuariorol obj);

	Integer borrarUsuariorol(Usuariorol obj);

	Rolmenu insertaRolmenu(Rolmenu obj);

	Integer borrarRolmenu(Rolmenu obj);

	Provincia grabaProvincia(Provincia obj);

	Provincia insertaProvincias(Provincia obj);

	Integer borrarProvincias(Provincia obj);

	Municipio grabaMunicipios(Municipio obj);

	Municipio insertaMunicipios(Municipio obj);

	Integer borrarMunicipios(Municipio obj);

	HashMap<Long, String> getMenusPadres(Long id);

	List<Menu> getMenuPrincipal(Long id);

	List<Menu> getMenuSecundario(Long id);

	public List<Usuario> getUsuarios() throws SQLException;

	public List<Menu> getMenus() throws SQLException;

	public List<Menu> getMenusPadres() throws SQLException;

	public List<Agenda> getAgendas() throws SQLException;

	public List<Directorio> getDirectorios() throws SQLException;

	public List<Provincia> getProvincias() throws SQLException;

	public List<Provincia> getListadoProvincias() throws SQLException;

	public List<Municipio> getMunicipios() throws SQLException;

	public List<Municipio> getMunicipios(Provincia provincia)
			throws SQLException;

	public Long getMenu(String titulo) throws SQLException;

	public List<Tipodirectorio> getTiposdirectorios() throws SQLException;

	public List<Rol> getRoles() throws SQLException;

	public List<Foto> getFotos() throws SQLException;

	public List<Rol> getListaRoles() throws SQLException;

	public List<Directorio> getListaDirectorios() throws SQLException;

	public List<Tipodirectorio> getListaTiposdirectorios() throws SQLException;

	public List<Usuariorol> getUsuariorols() throws SQLException;

	public List<Usuario> getListaUsuarios() throws SQLException;

	public List<Menu> getListaMenus() throws SQLException;

	public List<Rolmenu> getRolmenus() throws SQLException;

	public Usuario compruebaUsuario(Usuario usuario) throws SQLException;
}
